/**
 * Filename: register.js
 * Author: xhh
 * Description: 注册js文件
 * Date: 2018.03.24
 */
// 入口函数
$(function () {
    // 改变注册按钮的状态
    $("#username").on("input",function () {
        // 改变注册按钮的属性
        $("#reg_btn").attr("disabled", false);
    });
    $("#reg_btn").on("click", function () {
        // 获取各个输入框的数据
        // 手机号码
        var mobile = $("#mobile").val();
        // 验证码
        var verifyCode = $("#verify_code").val();
        // 邮箱
        var email = $("#email").val();
        // 密码
        var password = $("#password").val();
        // 确认密码
        var confirmPwd = $("#confirm_pwd").val();
        // 姓名
        var username = $("#username").val();
        // 如果全部输入框不为空则检查格式正不正确
        if (mobile && verifyCode && email && password && confirmPwd && username) {
            // 检查手机号码格式
            var isMobile = checkMobile(mobile.trim());
            // 检查邮箱格式
            var isEmail = checkEmail(email.trim());
            // 检查验证码
            var isVerifyCode = checkVerifyCode(mobile.trim(),verifyCode);
            // 检查密码
            var isPwdSimple = checkPassword(password.trim());
            if (!isMobile) {
                errorTip('手机号码格式有误');
                $("#mobile").focus();
            } else if (!isVerifyCode) {
                errorTip('手机验证码错误');
                $("#verify_code").focus();
            } else if (!isEmail) {
                errorTip('邮箱格式有误');
                $("#email").focus();
            } else if(!isPwdSimple){
                errorTip('密码为6-20字母数字组合');
                $("#password").focus();
            }else if (password.trim() !== confirmPwd.trim()) {
                errorTip('两次输入的密码不一致');
                $("#password").focus();
            } else if (!$("#agree_protocol").is(':checked')) {
                errorTip('请同意相关协议');
            } else {
                // 和后台交互判断用户是否已经注册
                alert('注册成功!');
            }
        } else {
            // 没有完整填写表单
            errorTip('注册信息填写不完整');
        }
    });
    /**
     * 错误信息提示
     * @param {*错误文本} string 
     */
    function errorTip(string) {
        // 显示错误信息
        $("#reg_error_tip").text(string).fadeIn(500);
        // 2s后清除错误信息
        setTimeout(() => {
            $("#reg_error_tip").fadeOut(500).text('');
        }, 2000);
    }
    /**
     * 手机号码正则匹配
     * @param {*手机号码} str 
     */
    function checkMobile(str) {
        // 手机号码格式正则
        var regex = /^[1][3,4,5,7,8][0-9]{9}$/;
        if (!regex.test(str)) {
            return false;
        } else {
            return true;
        }
    }  
    /**
     * 检查验证码,ajax请求相应的短信接口
     * @param {*手机号码} mobile
     * @param {*验证码} verifyCode 
     */
    function checkVerifyCode(mobile,verifyCode) {
        if (verifyCode == '1234') {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 邮箱正则匹配
     * @param {*邮箱} email 
     */
    function checkEmail(email) {
        // 邮箱格式正则
        var regex = /^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g;
        if (regex.test(email)) {
            return true;
        } else {
            return false;
        }
    }
    /**
     * 检查密码是否过于简单
     * @param {*密码} pwd 
     */
    function checkPassword(pwd) {
        // 6-20字母数字组合
        var regex = /^[A-Za-z0-9]{6,20}$/;
        if(regex.test(pwd)) {
            return true;
        } else {
            return false;
        }
    }
});